Planning for remaining work on !ResEd

History:

  0.01  20-Apr-94  First estimate for alpha release (16 weeks: 12-Aug-94)
                    reported to Ian.
  0.02  15-Jun-94  Revised estimate (independently estimated): 16-Sep-94


Window CSE

    The gadgets to be supported are:
      action button
      option button
      labelled box
      label
      radio button
      display field
      writable field
      slider
      draggable
      popup menu
      adjuster arrow
      number range
      string set
      wimp icon

   *Understand !Menu CSE, and the shell.
   |
15 *Data-structure for dis-assembled window templates.
   |  Approach similar to !Menu and to !WinEdit.
   |
   *Start-up, and load/save from/to shell:
      Code similar to !Menu, although relocation will be a little different.
      Re-assembly will be quite different.

    !Palette:
      Easy - initially, just an empty window.

 3 *Palette:
      More difficult - this needs to contain one window with instances of
      each gadget; will Ian/Tim's program assist here?

 5 *Editing window behaviour:
      Most of the code needed is already present in !WinEdit - but it will
      take some time to understand, extract and modify as appropriate.
      Extra code to deal with Number range and radio button special feedback
      will be needed.

    Behaviour not present in !WinEd:

 1   *SHIFT-DRAG-SELECT on window background - should select only those
       objects *completely* enclosed by the lassoo.

      Double-click-SEL on window background should open window's property
       box.

     *CTRL-SHFT-DRAG-SEL should move editing window itself.
 1   |
     *CTRL-SHFT-DRAG-ADJ should resize editing window itself.

 1   *Multiply-instantiated property boxes.

      ToolBox-related properties for windows:
       help text, menu, pointer shape and hot spot, abouttobeshown event,
       auto-open, auto-close.

     *Moving objects with grid lock on - is not quite implemented as
     | required, since it appears that vertical movement is a multiple of
     | grid spacing, whereas horizontal movement snaps to grid points; no
 5   | doubt other details of grid behaviour will need alteration.
     |
     *Separate horizontal and vertical grid spacing is required.
     |
     *A "snap to grid" option is required.

 0.5 *A "coordinates" dialogue is needed to set gadget position and size
       precisely.

 0.5 *Alignment to left/right or top/bottom simultaneously should make
       gadgets the same size.

 3   *Code to define and edit keyboard shortcuts is required - including a
       dbox with a scrolling pane inside.

 1   *"Link writables" is functionally similar - if not identical - to the
       "Renumber icons" option.

      Other Toolbox-related gadget properties include:
       componentID, event delivery, object to show, help text, bounds,
       precision

 5   *Groups of radio buttons - "make radio group", importing and exporting,
       moving around, visual indication of members of a group


 2   *Composite gadgets, such as sliders, number ranges and string sets.

--
43
--


Misc CSE

 2   *First example (overall program structure)

 0.5 *Dragging an object from a shell window to a writeable field will enter
      its name (also needed for Window CSE).

 1   *Need colour menu and colour picker!

 0.5 *Need font menu!

     *Classes to support are:
 0.5    Iconbar icon
 1      Colour menu
 1.5    Colour dbox
 0.5    DCS
 0.5    File Info
 1      Font Dbox
 0.5    Font menu
 0.5    Print dbox
 0.5    Prog info
 0.5    Quit
 0.5    Saveas
 0.5    Scale view

 1   *Each will need its own icon for the shell's palette.

--
13
--


  Total  56 days @ 4 days/week = 14 weeks

  Allowing 2 weeks' holiday in this period, we arrive at 16 weeks.

  16 weeks from Monday April 25th (week 17) takes us to the end of week 32
   which is Friday August 12th.

  This is the date for the alpha-release.


Other things:

  !Help support
  Test mode


*****************************************************************************


Revised estimates made on 15-Jun-94:

Window CSE

 1.0  Complete gadget copy/move by dragging
 2.0  Display resize handles, and implement gadget resizing
 0.5  Move/resize window by modified mouse drag
      Implement grid:
 1.0    Dbox and display
 1.0    Lock - for move and resize
 1.0    Snap to grid option
 0.5  Delete
 1.0  Make radio group/import and export of radio buttons
 0.5  Special visual feedback for radio buttons
 0.5  Link writables
 1.0  Coordinates dialogue
 2.0  Align dialogue
 1.0  Dropping objects/gadgets into dboxzes to insert names/componentids
 0.5  New "default for caret" option
 3.0  Generic gadget dialogue code
 7.0  14 gadget dialogues at an average of 0.5 days each
 0.5  Internal "stretch" resize ear for numberranges
----
24.0
----

Misc CSE

 5.0  Skeleton code
 6.0  12 object classes at average 0.5 days each
 1.0  Using colour picker
 1.0  Using font menu
 0.5  Saveas filetype popup
 0.5  Iconbar position popup
----
14.0
----

This gives a revised estimate of 38 days.

Timesheet analysis shows that at present 70% of my time at work is allocated
to Aquarius - in 35 days I have allocated 189hrs (25.2 days) = 72%.

My previous estimate of 56 days less the current estimate of 38 days shows
that I have achieved 18 "estimate-days" with 25 "real-days" - not a good
record - but this can be reasonably accounted for by unplanned work as
follows:

  Chasing Wimp bug (blocked icons):     3 days
  Sorting out null/empty strings:       2 days

Allowing for this, we have 18 "estimate-days" covered in 20 "real-days"; much
more hopeful.


Revised date for full-functionality alpha release is now derived:

  Over the summer I have planned the following days away from the office:

    Holiday       6 days
    Bank holiday  1 day
    POWER         2 days
                 --
                  9
                 --

  So elapsed time to complete is 38 * (10/7) + 9 = 63 days.

  The end of this week is the end of week 24, so allowing a small amount of
  contingency takes us to the end of week 24 + 13 = week 37, thus arriving
  at Friday 16th September.


Notes:

  1) This date represents a 5-week slip.

  2) This is accounted for as follows:

         Esprit:          2 weeks
         70% v 80%:       2 weeks   [ 56 days @ 80% -> 70,
                                      56 days @ 70% -> 80 ]
         Unexpected work: 1 week    [ tracking down Wimp bug,
                                      null/empty string issues ]

  3) Possible ways to recover some time:

     a) Requiring minimum Aquarius of 80% can now recover 7 days:

         [ 38 days @ 80% -> 47.5,  38 days @ 70% -> 54.3 ]

     b) Omitting functionality:
                                                   @70%
          Grid lock and snap options:        3      4.3
          Align options:                     2      2.9
          Dropping objects/gadgets to
           insert names/ids into fields:     1      1.4
          Fewer pop-ups for value selection
           ("initial" colour/font, saveas
            "filetype", iconbar "position")  3      4.3
                                            --     ----
                                             9     12.9
                                            --     ----

  4) Possible ways forward:

     a) Reduced functionality:

          - Accept Esprit slip  (2 weeks).
          - Recover 13 days of remaining 15 by omitting items above.
          - Lose 2 days' contingency.

     b) Delay:

          - Accept Esprit slip + one week (3 weeks).
          - Force 80% from me from now on to gain 7 days.
          - Lose 3 days' contingency.


After discussing this at the Project meeting on 17th June, it was decided to
slip alpha start by 2 weeks, accepting reduced functionality, and then plan
to recover at least a week before project end - so the end date slips by
just one week.

*****************************************************************************
